Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
tui-editor
Advanced tools
GFM Markdown WYSIWYG Editor - Productive and Extensible
TOAST UI Editor applies Google Analytics (GA) to collect statistics on the use of open source, in order to identify how widely TOAST UI Editor is used throughout the world. It also serves as important index to determine the future course of projects. location.hostname (e.g. > “ui.toast.com") is to be collected and the sole purpose is nothing but to measure statistics on the usage. To disable GA, use the following usageStatistics
options when creating editor.
const options = {
// ...
usageStatistics: false
}
const instance = new Editor(options);
Or, include tui-code-snippet
(v1.5.0 or later) and then immediately write the options as follows:
tui.usageStatistics = false;
Today CommonMark is the de-facto Markdown standard. GFM (GitHub Flavored Markdown) is another popular specification based on CommonMark - maintained by GitHub, which is the Markdown mostly used. TOAST UI Editor follows both CommonMark and GFM specifications. Write documents with ease using productive tools provided by TOAST UI Editor and you can easily open the produced document wherever the specifications are supported.
CommonMark and GFM are great, but we often need more abstraction. The TOAST UI Editor comes with powerful Extensions in compliance with the Markdown syntax. You also get the flexibility to develop your own extensions using simple APIs.
Here are some of the extensions you can start with:
To learn more about Extensions check the Using Extension.
TOAST UI Editor provides Markdown mode and WYSIWYG mode.
Depending on the type of use you want like production of Markdown or maybe to just edit the Markdown. The TOAST UI Editor can be helpful for both the usage. It offers Markdown mode and WYSIWYG mode, which can be switched any point in time.
TOAST UI products can be used by using the package manager or downloading the source directly. However, we highly recommend using the package manager.
TOAST UI products are registered in two package managers, npm and bower. You can conveniently install it using the commands provided by the package manager. When using npm, be sure to use it in the environment Node.js is installed.
$ npm install --save tui-editor # Latest version
$ npm install --save tui-editor@<version> # Specific version
TOAST UI products are available over the CDN powered by TOAST Cloud.
You can use the CDN as below.
<!-- Styles -->
<link rel="stylesheet" href="https://uicdn.toast.com/tui-editor/latest/tui-editor.css"></link>
<link rel="stylesheet" href="https://uicdn.toast.com/tui-editor/latest/tui-editor-contents.css"></link>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.48.4/codemirror.css"></link>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css"></link>
<!-- Scripts -->
<script src="https://uicdn.toast.com/tui-editor/latest/tui-editor-Editor-full.js"></script>
If you want to use a specific version, use the tag name instead of latest
in the url's path.
The CDN directory has the following structure.
tui-editor/
├─ latest/
│ ├─ tui-editor-Editor.js
│ ├─ tui-editor-Editor.min.js
│ └─ ...
├─ v1.1.0/
│ ├─ ...
The code below shows an example of using ES6 in node environment. If you are using bower please see Getting Started with Bower.
Add the container element where TOAST UI Editor will be created.
<div id="editorSection"></div>
TOAST UI Editor can be used by creating an instance with the constructor function. To get the constructor function, you should import the module using one of the following ways depending on your environment.
const Editor = require('tui-editor'); /* CommonJS */
import Editor from 'tui-editor'; /* ES6 */
Then import styles of TOAST UI Editor and dependencies.
import 'tui-editor/dist/tui-editor.css'; // editor's ui
import 'tui-editor/dist/tui-editor-contents.css'; // editor's content
import 'codemirror/lib/codemirror.css'; // codemirror
import 'highlight.js/styles/github.css'; // code block highlight
Finally you can create an instance with options and call various API after creating an instance.
import 'codemirror/lib/codemirror.css';
import 'tui-editor/dist/tui-editor.css';
import 'tui-editor/dist/tui-editor-contents.css';
import 'highlight.js/styles/github.css';
import Editor from 'tui-editor';
const instance = new Editor({
el: document.querySelector('#editorSection'),
initialEditType: 'markdown',
previewStyle: 'vertical',
height: '300px'
});
instance.getHtml();
If you use jQuery plugin, you can use it as follows.
$('#editorSection').tuiEditor({
initialEditType: 'markdown',
previewStyle: 'vertical',
height: '300px'
});
height
: Height in string or auto ex) 300px
| auto
initialValue
: Initial value. Set Markdown stringinitialEditType
: Initial type to show markdown
| wysiwyg
previewType
: Preview style of Markdown mode tab
| vertical
usageStatistics
: Let us know the hostname. We want to learn from you how you are using the Editor. You are free to disable it. true
| false
Find out more options here
TOAST UI Editor provides the Viewer in case you want to show Markdown content without loading the Editor. The Viewer is much lighter than the Editor.
import 'tui-editor/dist/tui-editor-contents.css';
import 'highlight.js/styles/github.css';
import Viewer from 'tui-editor/dist/tui-editor-Viewer';
const instance = new Viewer({
el: document.querySelector('#viewerSection'),
height: '500px',
initialValue: '# content to be rendered'
});
instance.getHtml();
Be careful not to load both the Editor and the Viewer at the same time because the Editor already contains the Viewer function, you can initialize editor Editor.factory()
and set the viewer
option to value true
in order to make the editor a viewer. You can also call getHtml()
to render the HTML.
import Editor from 'tui-editor';
const instance = Editor.factory({
el: document.querySelector('#viewerSection'),
viewer: true,
height: '500px',
initialValue: '# content to be rendered'
});
TOAST UI Editor follows CommonMark and GFM. So any Markdown renderer including markdown-it can handle the content made using TOAST UI Editor. You can also use any of these renderer in place of TOAST UI Editor Viewer.
Chrome | Internet Explorer | Edge | Safari | Firefox |
---|---|---|---|---|
Yes | 10+ | Yes | Yes | Yes |
All TOAST UI products are open source. A Pull Request (PR) can be made upon fixing an issue or developing additional features to be implemented.
To install, first fork the master branch to your own personal repository. Then, clone the forked repository to your local machine, and install the following node module. Prior to development, first, make sure that the modules are properly installed.
$ git clone https://github.com/{your-personal-repo}/tui.editor.git
$ cd tui.editor
$ npm install
$ npm run test
You can see your code is reflected as soon as you saving the codes by running a server. Don't miss adding test cases and then make green rights.
$ npm run serve
$ npm run test
Before creating a PR, test and check for any errors. If there are no errors, then commit and push.
For more information, please refer to the Contributing section.
FAQs
GFM Markdown Wysiwyg Editor - Productive and Extensible
We found that tui-editor demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.